package com.wei.czz.framework.admin.service;

import com.wei.czz.framework.admin.entity.DeptRoleEntity;

import java.util.List;

/**
 * Created by IntelliJ IDEA.
 *
 * @author wei
 * date: 2024-04-29 11:56:58
 * className: DeptUserService 部门与角色关联操作服务接口
 * version: 1.0
 * description:
 */
public interface DeptRoleService {

    /**
     * 保存或修改部门与角色操作
     * @param deptRole 部门与角色对象
     */
    void saveOrEdit(DeptRoleEntity deptRole);

    /**
     * 获取部门与角色关联操作
     * @param id 主键
     * @return 部门与角色关联对象
     */
    DeptRoleEntity get(Long id);

    /**
     * 获取部门与角色关联操作
     * @param idList 主键列表
     * @return 部门与角色关联对象列表
     */
    List<DeptRoleEntity> getList(List<Long> idList);

    /**
     * 获取部门与角色关联关系操作
     * @param id 主键
     * @return 部门与角色关联关系对象
     */
    DeptRoleEntity findDeptRole(Long id);

    /**
     * 获取部门关联角色操作
     * @param deptIdList 部门主键
     * @return 部门与角色关联关系对象列表
     */
    List<DeptRoleEntity> findDeptRoleList(List<Long> deptIdList);

    /**
     * 获取部门关联角色操作
     * @param deptIdList 部门主键列表
     * @param roleIdList 角色主键列表
     * @return 部门与角色关联关系对象列表
     */
    List<DeptRoleEntity> findList(List<Long> deptIdList, List<Long> roleIdList);

    /**
     * 批量更新部门与角色操作
     * @param deptRoleList 部门与角色对象列表
     */
    void batchUpdate(List<DeptRoleEntity> deptRoleList);

    /**
     * 批量删除部门与角色关联关系操作
     * @param idList     主键列表
     * @param deptIdList 部门主键列表
     * @param roleIdList 角色主键列表
     */
    void deleteDeptRole(List<Long> idList, List<Long> deptIdList, List<Long> roleIdList);

}

